The invention generally relates to a display controller and, and more particularly, to a controller for a liquid crystal display.
LCD monitors receive image data from an external memory and display an image represented by the data on the monitor. The image data typically is supplied from one of an internal graphics memory, a shared main memory, or an external memory. An LCD controller that does not have its own memory must arbitrate the system bus to get the display data from the shared main memory or the external memory. In this scenario, the LCD controller fetches data from memory and outputs the data to the display at a fixed rate.
Image flickering has long been a problem for display makers. Flickering may occur because the image data is not updated or refreshed fast enough. One reason image data is not updated fast enough is due to a system bus overload or collisions between graphics memory updating and display monitor refreshing. During system bus overload, the actual latency of fetched data is longer than an allowable value, such that the LCD controller does not receive the requested data, which causes erroneous data to be displayed. This display of erroneous data is recognized as image flicker.
The most typical practical solutions to the bus overload problem is to reduce the probability of bus overload by having a large FIFO inside the LCD controller or by reducing the loading of the bus by using a faster system clock or a cache controller. However, it may not be practical or cost effective to include the additional hardware required to support a large FIFO. An alternative to the hardware FIFO is to use software double buffering. In software double buffering, data is written to system memory buffers and then copied to a fixed graphics display memory. However, a problem with software double buffering is that there is an impact on performance due to the need to copy an entire extra screen's worth of data per display frame, and thus the software double buffering technique may not avoid the bus overload problem.
Thus, a need exists for a managing display data during intermittent bus overflow conditions in order to achieve a flicker free display.